// pages/zhihuishenghuo_gxq/zhihuishenghuo_gxq.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    active: 0,
    priceSort: 'desc', 
    isPriceSortVisible: false, // 控制下拉菜单显示
    selectedPriceRange: null,
    isPriceRangeMenuVisible: false,
    tempSelectedRange: null, // 临时存储选择的范围，点击确定后才生效
    priceRangeOptions: [
        { label: '免费', value: "free"},
        { label: '¥50以下', value:"0-50" },
        { label: '¥50 - 100', value: "50-100" },
        { label: '¥100 - 500', value: "100-500" },
        { label: '¥500 - 1000', value: "500-1000" },
        { label: '¥1000以上', value: "1000-inf" }
    ],
    filteredProducts: [], // 过滤后的产品列表
    products: [
        {
        name: '课程名字1',
        price: '188',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc1.png',
      },
      {
        name: '课程名字2',
        price: '900',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc2.png',
      },
      {
        name: '课程名字3',
        price: '158',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc3.png',
      },
      {
        name: '课程名字4',
        price: '108',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc4.png',
      },
      {
        name: '课程名字5',
        price: '38',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc5.png',
      },
    ]
  },
  onChange(event) {
  },
  onClickLeft() {
    wx.navigateBack();
  },
   // 切换价格排序下拉菜单的显示状态
   togglePriceSort: function() {
    this.setData({
        isPriceRangeMenuVisible: false,
      isPriceSortVisible: !this.data.isPriceSortVisible
    });
  },

  // 处理价格排序
  handlePriceSort: function(e) {
    const sort = e.currentTarget.dataset.sort;
    this.setData({
      priceSort: sort,
      isPriceSortVisible: false // 选择后隐藏下拉菜单
    });
    this.sortProducts(sort);
  },

  // 根据排序方式对产品进行排序
  sortProducts: function(sort) {
    this.setData({
        products: sort
      });
   // 决定要排序的数据源（优先使用筛选后的数据）
   const sourceArray = this.data.filteredProducts 
   ? this.data.filteredProducts.slice() 
   : this.data.products.slice();

 // 执行排序
 sourceArray.sort((a, b) => {
   const priceA = this.parsePrice(a.price);
   const priceB = this.parsePrice(b.price);
   return sort === 'asc' ? priceA - priceB : priceB - priceA;
 });

 // 更新状态
 this.setData({
   filteredProducts: sourceArray // 始终更新筛选后的数据
 });

  },
 // 切换价格区间菜单的显示状态
 togglePriceRangeMenu: function() {
    this.setData({
        isPriceSortVisible: false,
      isPriceRangeMenuVisible: !this.data.isPriceRangeMenuVisible,
      tempSelectedRange: this.data.selectedPriceRange // 每次打开菜单时重置临时选择
    });
  },

  // 选择价格区间
  selectPriceRange: function(e) {
    const range = e.currentTarget.dataset.range;
    this.setData({
        tempSelectedRange: range
    });
  },

  // 确认价格区间筛选
  confirmPriceRange: function() {
    this.setData({
        selectedPriceRange: this.data.tempSelectedRange,
        isPriceRangeMenuVisible: false
      }, () => {
        this.filterProductsByPrice();
        console.log('当前筛选条件:', this.data.selectedPriceRange); // 调试日志
      });
  },

 // 过滤函数
filterProductsByPrice: function() {
    const { selectedPriceRange, products, priceSort } = this.data;
    
    if (!selectedPriceRange) {
      this.setData({ filteredProducts: products });
      return;
    }
  
    let filtered;
    if (selectedPriceRange === "free") {
      filtered = products.filter(p => this.parsePrice(p.price) === 0);
    } else {
      const [minStr, maxStr] = selectedPriceRange.split('-');
      const min = parseFloat(minStr);
      const max = maxStr === 'inf' ? Infinity : parseFloat(maxStr);
      
      filtered = products.filter(p => {
        const price = this.parsePrice(p.price);
        return price >= min && (max === Infinity ? true : price <= max);
      });
    }
    // 应用当前排序状态
    if (priceSort) {
        filtered.sort((a, b) => {
          const priceA = this.parsePrice(a.price);
          const priceB = this.parsePrice(b.price);
          return priceSort === 'asc' ? priceA - priceB : priceB - priceA;
        });
      }
    this.setData({ filteredProducts: filtered });
    console.log('筛选结果:', filtered); // 调试日志
  },
  

// 价格解析方法
parsePrice: function(price) {
    // 处理含¥符号的情况："¥188" → 188
    return parseFloat(String(price).replace(/[^0-9.]/g, '')) || 0;
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const initialProducts = [  {
        name: '课程名字1',
        price: '188',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc1.png',
      },
      {
        name: '课程名字2',
        price: '900',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc2.png',
      },
      {
        name: '课程名字3',
        price: '158',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc3.png',
      },
      {
        name: '课程名字4',
        price: '108',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc4.png',
      },
      {
        name: '课程名字5',
        price: '38',
        desc: '这里是课程简单价绍，这里是课程简单价绍，这里是课程简单价绍...',
        thumb: '/images/kc5.png',
      }]; // 你的课程数据
    this.setData({
      products: initialProducts,
      filteredProducts: initialProducts // 初始显示全部课程
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})